package com.disv.service;

import com.aliyun.dingtalkcontact_1_0.models.GetOrgAuthInfoResponse;
import com.aliyun.dingtalkoauth2_1_0.models.GetAuthInfoResponse;
import com.aliyun.dingtalkoauth2_1_0.models.GetCorpAccessTokenResponse;
import com.aliyun.dingtalkoauth2_1_0.models.GetSuiteAccessTokenResponse;
import com.dingtalk.api.response.OapiServiceGetCorpTokenResponse;
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
import com.dingtalk.api.response.OapiV2UserListResponse;
import com.disv.domain.DdDeptInfo;

import java.util.List;

public interface DingOperateService {
    GetCorpAccessTokenResponse getCorpAccessToken(String authCorpId) throws Exception;

    GetAuthInfoResponse getAuthInfo(String authCorpId) throws Exception;

    GetSuiteAccessTokenResponse getSuiteAccessToken() throws Exception;

    GetOrgAuthInfoResponse getOrgAuthInfos(String authCorpId) throws Exception;

    OapiV2DepartmentListsubResponse getDepartmentListsub(String authCorpId, Long dept_id) throws Exception;

    OapiServiceGetCorpTokenResponse getCorpToken(String authCorpId);

    OapiV2UserListResponse getDepartmentUserList(String authCorpId, Long dept_id, long cursor, long size);

    List<DdDeptInfo> departmentListsubAll(String authCorpId, long dept_id);

    OapiV2UserListResponse departmentUserListAll(String authCorpId);

    OapiV2DepartmentGetResponse departmentDetails(String authCorpId, long dept_id);
}
